/*
 * @lc app=leetcode.cn id=49 lang=javascript
 *
 * [49] 字母异位词分组
 */

// @lc code=start
/**
 * @param {string[]} strs
 * @return {string[][]}
 */
// 字符串排序加hash表
var groupAnagrams = function(strs) {
  let map = new Map()
  for (const str of strs) {
    let arr = Array.from(str)
    arr.sort()
    let key = arr.join()
    let list = map.get(key) ? map.get(key) : new Array();
    list.push(str);
    map.set(key, list);
  }
  return Array.from(map.values());
};
// @lc code=end
// 计数
// var groupAnagrams = function(strs) {
//   let map = new Map()
//   for (const str of strs) {
//     let count = new Array(26).fill(0)
//     for (let c of str) {
//       count[c.charCodeAt() - 'a'.charCodeAt()]++;
//     }
//     map[count] ? map[count].push(str) : map[count] = [str]
//   }
//   return Object.values(map)
// }
